Method of manufacturing complex three-dimensional building surfaces

ABSTRACT

A method implemented by a computer system, the computer-implemented method comprising receiving dimensions of a building surface, including a surface length and a surface height; receiving dimensions of a surface material unit, including a material length and a material height; receiving design parameters defining a three-dimensional design over the building surface; partitioning the three-dimensional design into a plurality of three-dimensional segments based on both the three-dimensional design and the dimensions of the surface material; and generating a set of milling instructions for cutting a plurality of surface material units into the plurality of three-dimensional segments.

CROSS-REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. patent applicationSer. No. 16/422,896, filed May 24, 2019, which is a continuation-in-partof U.S. patent application Ser. No. 15/582,483, filed Apr. 28, 2017,which claims priority to U.S. Provisional Patent Application No.62/467,028, entitled “Method of Manufacturing Complex Three-DimensionalBuilding Surfaces,” filed Mar. 3, 2017, and to U.S. Provisional PatentApplication No. 62/331,927, entitled “Method of Manufacturing ComplexThree-Dimensional Building Surfaces,” filed May 4, 2016. The entirecontents of these related applications are incorporated into thisapplication by reference.

FIELD OF THE INVENTION

The present invention relates generally to a method of manufacturingbuilding surfaces and, more particularly, to a method of manufacturingcomplex three-dimensional building surfaces using solid surfacematerial.

BACKGROUND

Interior wall and ceiling surfaces are typically covered with drywall,which can easily be patched and painted to create smooth, flat surfaces.However, design options for drywall surfaces are generally limited topaint selection as drywall cannot be milled to create three-dimensionalsurfaces or patterns.

Solid surface material, such as Corian LG Hi Mac, Krion, ArishtechAvonite, Meganite, Samsung Staron, Swan Swanstone, or Wilsonart SolidSurface, is generally a non-porous, low-maintenance material often usedfor countertops. Unlike drywall, solid surface material can be milled tocreate three-dimensional surfaces and patterns such as grooves orsurface contours.

However, existing technology and installation techniques make itdifficult, time consuming, and expensive to use solid surface materialfor anything other than countertops, let alone interior and exteriorbuilding surfaces, such as walls, ceilings, floors, and roofs. Forexample, unlike drywall, the adjoining areas between units of solidsurface material cannot easily be patched and painted to create aseamless surface. Rather, these adjoining areas require extensivesanding by expert installers. This laborious installation process can beexpensive and time-consuming.

Indeed, even with expensive, expert installation, the seams betweenadjoining surface material units can be difficult to conceal. This taskis made more arduous when the surface material units are etched orcontoured to include a three-dimensional design. For example, thegrooves or contour patterns on the surface material units can bedifficult to align and, even when properly aligned, often act tohighlight the seams between units. Existing methods for manufacturingdecorative building surfaces have largely been limited to repetitive,three-dimensional tile pieces, which have limited design potential andare time-consuming to install. The present invention addresses theseproblems involved in the prior art and provides further relatedadvantages.

BRIEF SUMMARY OF THE INVENTION

The present invention is embodied in methods, systems, andnon-transitory computer readable media configured to receive dimensionsof a building surface, dimensions of a surface material unit, and designparameters. The dimensions of the building surface include a surfacelength and a surface height, the dimensions of the surface material unitinclude material length and material height, and the design parametersdefine a three-dimensional design over the building surface. In someembodiments, the design parameters comprise a design element and one ofa plurality of design styles, wherein the design element comprises animage element, a drawn element, or both; and each of the plurality ofdesign styles comprises a predefined value for each of a plurality ofshape parameters. The three-dimensional design is partitioned into aplurality of three-dimensional segments based on both thethree-dimensional design and the dimensions of the surface materialunit. The methods, systems, and non-transitory computer readable mediaare further configured to generate a set of milling instructions forcutting a plurality of surface material units into the plurality ofthree-dimensional segments.

In one embodiment, the three-dimensional design can be a parametricdesign. In another embodiment, the three-dimensional design can benon-repetitive and have an area at least as large as an area of thebuilding surface. In a further embodiment, the area of the buildingsurface can be at least 50 square meters.

In one embodiment, the three-dimensional design can comprise a firstseries of lines extending generally in a first direction, andpartitioning the three-dimensional design can comprise dividing eachline in the first series of lines into a first set of points.

In one embodiment, the plurality of shape parameters can comprise afirst line-density parameter, which defines a distance between lines inthe first series of lines. In another embodiment, the plurality of shapeparameters can comprise a first point-resolution parameter, whichdefines a quantity of points in the first set of points. In a furtherembodiment, the plurality of shape parameters can comprise a firstradius-of-attraction parameter, which defines a radius of attractionbetween the first set of points on the first series of lines and thedesign element. In an additional embodiment, the plurality of shapeparameters can comprise a first attraction-intensity parameter, whichdefines a degree of attraction between the first set of points on thefirst series of lines and the design element. In one embodiment, theplurality of shape parameters can comprise a first minimum-depthparameter, which defines a minimum depth for the first series of lineswhen affected by a design element. In one embodiment, the plurality ofshape parameters can comprise a first maximum-depth parameter, whichdefines a maximum depth for the first series of lines when affected by adesign element. In another embodiment, the plurality of shape parameterscan comprise a first function parameter, which comprises a firstfunction that adds periodicity to the first series of lines. In afurther embodiment, the plurality of shape parameters can comprise afirst line-thickness parameter, which defines a thickness of the linesin the first series of lines. In one embodiment, the plurality of shapeparameters can comprise a multiplier parameter, which defines an amountby which one or more of the other design parameters can be multiplied toscale the overall effect. In yet another embodiment, the plurality ofshape parameters can comprise at least two of the foregoing parameters.

In another embodiment, the surface height can be less than or equal tothe material height, and partitioning the three-dimensional design canfurther comprise iteratively setting lines in the first series of linesas seam lines if a horizontal distance between any point on a next linein the first series of lines and any point on a latest seam line exceedsa first dimensional threshold. In a further embodiment, the firstdimensional threshold can be determined based on the material length.

In an alternative embodiment, the surface length can be less than orequal to the material length, and partitioning the three-dimensionaldesign can further comprise iteratively setting lines in the firstseries of lines as seam lines if a vertical distance between any pointon a next line in the first series of lines and any point on a latestseam line exceeds a first dimensional threshold. In a furtherembodiment, the first dimensional threshold can be determined based onthe material height.

In one embodiment, the three-dimensional design can comprise a firstseries of lines extending generally in a first direction and a secondseries of lines extending generally in a second direction. In anotherembodiment, the first direction can be different from the seconddirection. In a further embodiment, partitioning the three-dimensionaldesign can comprise dividing each line in the first and second series oflines into a set of points. In an additional embodiment, thethree-dimensional design can comprise a contoured surface. In yetanother embodiment, the lines in the first series of lines and the linesin the second series of lines can be curved.

In one embodiment, the plurality of shape parameters can comprise asecond line-density parameter, which defines a distance between lines inthe second series of lines. In another embodiment, the plurality ofshape parameters can comprise a second point-resolution parameter, whichdefines a quantity of points in the second set of points. In a furtherembodiment, the plurality of shape parameters can comprise a secondradius-of-attraction parameter, which defines a radius of attractionbetween the second set of points on the second series of lines and thedesign element. In an additional embodiment, the plurality of shapeparameters can comprise a second attraction-intensity parameter, whichdefines a degree of attraction between the second set of points on thesecond series of lines and the design element. In one embodiment, theplurality of shape parameters can comprise a second minimum-depthparameter, which defines a minimum depth for the second series of lineswhen affected by a design element. In one embodiment, the plurality ofshape parameters can comprise a second maximum-depth parameter, whichdefines a maximum depth for the second series of lines when affected bya design element. In another embodiment, the plurality of shapeparameters can comprise a second function parameter, which comprises asecond function that adds periodicity to the second series of lines. Ina further embodiment, the plurality of shape parameters can comprise asecond line-thickness parameter, which defines a thickness of the linesin the second series of lines. In one embodiment, the plurality of shapeparameters can comprise a multiplier parameter, which defines an amountby which one or more of the other design parameters can be multiplied toscale the overall effect. In yet another embodiment, the plurality ofshape parameters can comprise at least two of the foregoing parameters.

In one embodiment, partitioning the three-dimensional design can furthercomprise iteratively setting lines in the first series of lines as seamlines in a first set of seam lines if a horizontal distance between anypoint on a next line in the first series of lines and any point on alatest seam line in the first set of seam lines exceeds a firstdimensional threshold, wherein the first dimensional threshold isdetermined based on the material length; and iteratively setting linesin the second series of lines as seam lines in a second set of seamlines if a vertical distance between any point on a next line in thesecond series of lines and any point on a latest seam line in the secondset of seam lines exceeds a second dimensional threshold, wherein thesecond dimensional threshold is determined based on the material height.

In one embodiment, the methods, systems, and non-transitory computerreadable media can further comprise receiving modified design parametersfor a modified three-dimensional design; adjusting one or a combinationof the first series of lines and the second series of lines based on themodified design parameters; and repartitioning the modifiedthree-dimensional design into a modified plurality of segments based onthe modified three-dimensional design and the dimensions of the surfacematerial units.

In one embodiment, the methods, systems, and non-transitory computerreadable media can further comprise cutting the plurality of surfacematerial units into the plurality of three-dimensional segments. Inanother embodiment, the methods, systems, and non-transitory computerreadable media can further comprise generating a set of instructions forassembling the plurality of three-dimensional segments onto the buildingsurface to create the three-dimensional design over the buildingsurface.

Other features and advantages of the invention should become apparentfrom the following description of the preferred embodiments, taken inconjunction with the accompanying drawings, which illustrate, by way ofexample, the principles of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system including a construction module inaccordance with one embodiment of the present disclosure.

FIG. 2 illustrates a design module in accordance with one embodiment ofthe present disclosure.

FIG. 3 illustrates a partitioning module in accordance with oneembodiment of the present disclosure.

FIG. 4 illustrates an instruction generating module in accordance withone embodiment of the present disclosure.

FIG. 5A illustrates a design page showing a rendering of athree-dimensional design over a building surface area in accordance withone embodiment of the present disclosure.

FIG. 5B illustrates a design page showing a rendering of a plurality ofthree-dimensional segments that can be arranged to form thethree-dimensional design of FIG. 5A, in accordance with one embodimentof the present disclosure.

FIG. 5C illustrates a design page showing a rendering of athree-dimensional design over a building surface area in accordance withone embodiment of the present disclosure.

FIG. 5D illustrates a design page showing a rendering of a plurality ofthree-dimensional segments that can arranged to form thethree-dimensional design of FIG. 5C, in accordance with one embodimentof the present disclosure.

FIG. 6A illustrates a design page showing a rendering of athree-dimensional design over a building surface area in accordance withone embodiment of the present disclosure.

FIG. 6B illustrates a design page showing a rendering of a plurality ofthree-dimensional segments that can be arranged to form thethree-dimensional design of FIG. 6A, in accordance with one embodimentof the present disclosure.

FIG. 6C illustrates a design page showing a rendering of athree-dimensional design over a building surface area in accordance withone embodiment of the present disclosure.

FIG. 6D illustrates a design page showing a rendering of a plurality ofthree-dimensional segments that can arranged to form thethree-dimensional design of FIG. 6C, in accordance with one embodimentof the present disclosure.

FIG. 7A illustrates a design page showing a rendering of athree-dimensional design over a building surface area in accordance withone embodiment of the present disclosure.

FIG. 7B illustrates a design page showing a rendering of a plurality ofthree-dimensional segments that can be arranged to form thethree-dimensional design of FIG. 7A, in accordance with one embodimentof the present disclosure.

FIG. 7C illustrates an original image of a moose, which is used as animage element in the three-dimensional design of FIG. 7A, in accordancewith one embodiment of the present disclosure.

FIG. 8 illustrates a network diagram of an example system including auser device and a Computer Numeric Control (CNC) system that can beutilized in various scenarios, in accordance with one embodiment of thepresent disclosure.

FIG. 9 illustrates an example method of manufacturing a building surfacein accordance with one embodiment of the present disclosure.

FIG. 10 illustrates an example of a computer system or computing devicethat can be used in various scenarios, in accordance with one embodimentof the present disclosure.

FIG. 11A illustrates a design page showing drawn design elements over abuilding surface area in accordance with one embodiment of the presentdisclosure.

FIG. 11B illustrates a rendering of a first three-dimensional designover the drawn design elements of the building surface area shown inFIG. 11A.

FIG. 11C illustrates a rendering of a second three-dimensional designover the drawn design elements of the building surface area shown inFIG. 11A.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

An improved approach rooted in computer technology overcomes thepreviously discussed and other difficulties associated with conventionalapproaches. Based on computer technology, the disclosed technology canautomatically partition a three-dimensional design into a plurality ofthree-dimensional segments that can be assembled to create anon-repeating, seamless, three-dimensional design for a buildingsurface. The three-dimensional design and dimensions of a surfacematerial unit can be used to determine how to partition thethree-dimensional design into the plurality of three-dimensionalsegments. In certain embodiments, the three-dimensional design can beautomatically partitioned such that partition edges are generated alongcurves included in the three-dimensional design. In this way, when thethree-dimensional segments are joined together, they are joined togetherat existing curves which hide any seams caused by partition edges. Thepartitioned three-dimensional design can be used to generate millinginstructions for cutting a plurality of surface material units intothree-dimensional design segments that can be assembled into thethree-dimensional design. Low-skilled workers can easily assemble thesegments over a building surface area—without extensive sanding orfinishing—to create a non-repeating, ornate, and seamless,three-dimensional design.

With reference now to FIG. 1 of the illustrative drawings, there isshown a system 100 including a construction module 110 configured topartition a three-dimensional design into a plurality ofthree-dimensional segments that can be assembled to create a seamlessthree-dimensional design on a building surface, in accordance with oneembodiment. The construction module 110 can be configured to receivedimensions of a building surface, dimensions of a surface material unit,and design parameters. The dimensions of the building surface caninclude, for example, a surface length and a surface height. Thedimensions of the surface material unit can include, for example, one ormore material lengths and one or more material heights. The designparameters can define a three-dimensional design. In certainembodiments, the three-dimension design can be designed for the buildingsurface. The three-dimensional design is partitioned into the pluralityof three-dimensional segments based on both the three-dimensional designand the dimensions of the surface material unit. The methods, systems,and non-transitory computer readable media are further configured togenerate a set of milling instructions for cutting a plurality ofsurface material units into the plurality of three-dimensional segments.

As shown in FIG. 1, in one embodiment, the construction module 110 caninclude a design module 120, a partitioning module 130, an instructiongenerating module 140, and a cutting module 150. In some instances, theexample system 100 can include at least one data store 110. Thecomponents (e.g., modules, elements, etc.) shown in this and all otherfigures are exemplary only, and other implementations can includeadditional, fewer, integrated, or different components. For example, inanother embodiment, the construction module 110 might not include thecutting module 150. Some components might not be shown so as not toobscure relevant details.

The construction module 110 can be implemented, in part or in whole, assoftware, hardware, or as a combination of software and hardware. Ingeneral, a module can be associated with software, hardware, or anycombination of software and hardware. In some cases, the constructionmodule 110 can be implemented, in part or in whole, as software runningon one or more computer devices or systems, such as on a servercomputing system or a user (or client) computing system. For example,the construction module 110, or at least a portion of it, can beimplemented as or within an application, a program, or an applet, etc.,running on a user computing device or a client computing system, such asthe user device 710 of FIG. 7. In another example, the constructionmodule 110, or at least a portion of it, can be implemented using one ormore computing devices or systems that include one or more servers, suchas network servers or cloud servers. In some instances, the constructionmodule 110 can, in part or in whole, be implemented within or configuredto operate in conjunction with a Computer Numeric Control (CNC) system,such as the CNC system 720 of FIG. 7. For example, in one embodiment,the cutting module 150 can be implemented, in part or in whole, assoftware running on the CNC system 720 of FIG. 7. It should beunderstood that there can be many variations or other possibilities.

The design module 120 can be configured to receive dimensions of abuilding surface, dimensions of a surface material unit, and designparameters. The dimensions of the building surface can include, forexample, a surface length and a surface height. The dimensions of thesurface material unit can include, for example, material length andmaterial height. The design parameters can define a three-dimensionaldesign over the building surface. In addition, in one embodiment, thedesign module 120 can be configured to further receive dimensions of aCNC machine, including a machine length and a machine width. The designmodule 120 is described in greater detail below.

The partitioning module 130 can be configured to partition thethree-dimensional design into a plurality of three-dimensional segmentsbased on both the three-dimensional design and the dimensions of thesurface material unit. The partitioning module 130 is described ingreater detail below.

The instruction generating module 140 can be configured to produce a setof milling instructions and a set of assembly instructions. In oneembodiment, the instruction generating module 140 can be configured toproduce a set of computer-readable instructions that can be interpretedto extract the commands needed to operate a particular cutting machinefor production of the plurality of three-dimensional segments. Forexample, the instructions can comprise Computer Numeric Control (CNC)instructions, such as G-code, which is readable by, for example, a CNCmilling machine. In another embodiment, the instruction generatingmodule 140 can be configured to produce a set of instructions forassembling the plurality of three-dimensional segments on the buildingsurface. The instruction generating module 140 is described in greaterdetail below.

The cutting module 150 can be configured to interpret a set ofcomputer-readable instructions to extract the commands needed to operatea particular cutting machine for production of the plurality ofthree-dimensional segments. Milling is a cutting process that uses amilling cutter to remove material from the surface of a workpiece.Milling machines, and other cutting tools, have become automated, forexample, through the use of Computer Numerical Control (CNC). Ratherthan being manually operated, CNC machines are operated by programmedcommands from a standardized set of instructions, such as G-code.Accordingly, in one embodiment, the cutting module 150 translates thecutting instructions into commands to move a milling spindle to variouslocations and depths and otherwise guide the cutting machine for desiredoperation.

Furthermore, in one embodiment, the construction module 110 can beconfigured to communicate or operate with the at least one data store160, as shown in the example system 100. The data store 160 can beconfigured to store and maintain various types of data. In someimplementations, the data store 160 can store information associatedwith the construction system (e.g., one or both of the user device 710and the CNC system 720 of FIG. 7). The information associated with theconstruction system can include, for example, data about buildingdimensions, design parameters, surface materials, cutting equipment, andvarious other types of data. It is contemplated that there can be manyvariations or other possibilities.

FIG. 2 illustrates a design module 120 configured to receive thedimensions of a building surface, the dimensions of surface materialunits, and design parameters in accordance with one embodiment of thepresent disclosure. As shown in FIG. 2, the design module 120 caninclude a measurement input module 122, a design input module 124, and arendering module 126. In one embodiment, the design module 120 does notinclude the rendering module 126.

The measurement input module 122 can be configured to receive dimensionsof a building surface and dimensions of one or more surface materialunits. The dimensions of a building surface, such as a living room wall,can include a surface length (e.g., 155 inches) and a surface height(e.g., 90 inches). The dimensions of a surface material unit, such as aunit of Corian, can include a material length (e.g., 144 inches) and amaterial height (e.g., 30 inches). In certain embodiments, each unit ofa plurality of surface material units has the same dimensions. In analternative embodiment, a plurality of dimensions for a plurality ofsurface material units can be defined. In one embodiment, themeasurement input module 122 can be configured to further receivedimensions of a CNC machine. The dimensions of a CNC machine caninclude, for example, a machine length (e.g., 96 inches) and a machinewidth (e.g., 30 inches).

The design input module 124 can be configured to receive designparameters defining a three-dimensional design for a building surface.In one embodiment, the three-dimensional design defined by the designparameters can be non-repetitive (i.e., substantially without repeatingsegments or portions) and have an area at least as large as an area ofthe building surface. In certain embodiments, the area of the buildingsurface is at least 50 square meters. In certain embodiments thethree-dimensional design comprises a contoured surface. Accordingly, inan additional embodiment, the design input module 124 can be configuredto receive parameters to define the contoured surface over the buildingsurface area.

In one embodiment, the three-dimensional design defined by the designparameters comprises a first series of lines extending generally in afirst direction. In another embodiment, the three-dimensional designdefined by the design parameters further comprises a second series oflines extending generally in a second direction, wherein the firstdirection is different from the second direction. In a furtherembodiment, the lines in the first or second series of lines can definegrooves that can be carved into a surface material unit. The term“lines” as used in this application, can include lines that arestraight, curved, zigzag, or any combination of these. For example, inan additional embodiment, the first series of lines and the secondseries of lines can form a grid-like pattern on a plurality of virtualsurface material units assembled over a virtual building surface.

Accordingly, in one embodiment, the design input module 124 can beconfigured to receive design parameters defining the configuration ofthe first series of lines, the second series of lines, or both. Forexample, the design input module 124 can be configured to define a firstseries of lines or both the first series of lines and a second series oflines.

In one embodiment, the design parameters can comprise a design element.The design element can comprise an image element, a drawn element, orboth. For example, the design input module 124 can be configured toreceive one or more image elements (e.g., images, photographs, ordrawings), such as a photograph of a Zebra, drawn over the design area.In addition, the design input module 124 can be configured to receiveone or more drawn design elements or geometry, such as a series ofarches, drawn over the design area.

In some embodiments, the design parameters can further comprise a valuefor one or more shape parameters. For example, the shape parameter caninclude a line-density parameter, which defines a distance between linesin the first or second series of lines. In one embodiment, the shapeparameter can include a minimum-depth parameter, which defines a minimumdepth for the series of lines when affected by a design element. Inanother embodiment, the shape parameter can include a maximum-depthparameter, which defines a maximum depth for the series of lines whenaffected by a design element. In a further embodiment, the shapeparameter can include a function parameter, which comprises a functionthat adds periodicity to the series of lines. In an additionalembodiment, the shape parameter can include a line-thickness parameter,which defines a thickness of the lines in the series of lines.

For example, the design input module 124 can be configured to receive adensity of the first series of lines (e.g., 1 line per inch) and adensity of the second series of lines (e.g., 3 lines per inch), whichcan define the density of the grid-like pattern of the three-dimensionaldesign. In a further embodiment, the design input module 124 can beconfigured to receive a thickness of the first series of lines and athickness of the second series of lines, which can define the width ofthe grooves cut into the surface material units in the two sets oflines. In an additional embodiment, the design input module 124 can beconfigured to receive a depth of the first series of lines and a depthof the second series of lines, which can define the depth of the groovescut into the surface material units in the two sets of lines. In yetanother embodiment, the design input module 124 can be configured toreceive parameters for a sine expression that can be applied to thefirst and second series of lines to add one or more sinusoidal curvedlines to one or both of the two sets of lines.

As is discussed in more detail below (in connection with the designdeconstruction module 132), in some embodiments, each line in the firstand second series of lines can be divided into a set of points. Forthese embodiments the shape parameters can include a point-resolutionparameter, which defines the number of points in the set of points.

In certain embodiments, drawn design elements or geometry can modify thefirst series of lines, and, if included, the second series of lines. Forexample, the lines in the first and second series of lines can bendtowards (e.g., be attracted to) the drawn geometry or away from (e.g.,be repelled by) the drawn geometry. Similarly, in certain embodiments,the image element can modify the first series of lines, and, ifincluded, the second series of lines. For example, the lines in thefirst and second series of lines can bend towards (e.g., be attractedto) or away from (e.g., be repelled by) darker (or lighter) regions ofthe image element. For these embodiments, the shape parameters caninclude a radius-of-attraction parameter, which defines a radius ofattraction between the set of points on the series of lines and thedesign element. In other words, the first radius-of-attraction parameterdefines a maximum distance of attraction around a design element. If thedistance between a control point and the design element is lower thanthis radius, the control point will not be affected by the designelement. In a further embodiment, the shape parameters can include anattraction-intensity parameter, which defines a degree of attractionbetween a set of points on the series of lines and the design element.In other words, the attraction-intensity parameter defines a maximumdistance a control point on a line in the first series of lines willmove in the second direction when being attracted by a design element.

For example, the design input module 124 can receive an attraction shape(e.g., 1 inch), which can define a radius of attraction between pointson the first and second series of lines and a drawn geometry. In anotherembodiment, the design input module 124 can be configured to receive anattraction intensity for the first series of lines, which can define adegree of attraction between points on the first series of lines and thedrawn geometry. In a further embodiment, the design input module 124 canbe configured to receive an attraction intensity for the second seriesof lines, which can define a degree of attraction between points on thesecond series of lines and the drawn geometry. In certain embodiments,the design input module 124 can be configured to receive an attractionintensity for any drawn geometry, which can define a degree ofattraction between points on the first and second series of lines andthe drawn geometry.

Similarly, in certain embodiments, the design input module 124 canreceive an attraction shape (e.g., 1 inch), which can define a radius ofattraction between points on the first and second series of lines andthe dark (or light) regions of an image element. In another embodiment,the design input module 124 can be configured to receive an attractionintensity for the first series of lines, which can define a degree ofattraction between points on the first series of lines and the dark (orlight) regions of the image element. In a further embodiment, the designinput module 124 can be configured to receive an attraction intensityfor the second series of lines, which can define a degree of attractionbetween points on the second series of lines and the dark (or light)regions of the image element. In certain embodiments, the design inputmodule 124 can be configured to receive an attraction intensity for anyimage element, which can define a degree of attraction between points onthe first and second series of lines and the dark (or light) regions ofthe image element.

In one embodiment, the design input module 124 can be configured toreceive design parameters for a parametric, three-dimensional design.For example, the design parameters can be edited or manipulated todefine and modify an ornate, three-dimensional design.

In certain embodiments, the design input module 124 can be configured toreceive an offset value for a horizontal direction and an offset valuefor a vertical direction. In one embodiment, the horizontal and verticaloffset values can define the horizontal and vertical positioning of theplurality of surface material units over the building surface area.

In the preceding examples, the received design-parameters include avalue (e.g., 3) for one or more shape parameters (e.g., line density).In other embodiments, the design parameters can instead comprise one ofa plurality of design styles, or “brushstrokes.” For these embodiments,each of the plurality of design styles can comprise a predefined valuefor each of a plurality of shape parameters. For example, a firstbrushstroke might define a predefined value (e.g., 0.8) for theline-density parameter, a predefined value (e.g., 0.5) for theradius-of-attraction parameter, a predefined value (e.g., 2.0) for theattraction-intensity parameter, a predefined value (e.g., 0.10) for theminimum-depth parameter, a predefined value (e.g., 0.35) for themaximum-depth parameter, a predefined value (e.g., sin(x)) for thefunction parameter, and a predefined value (e.g., 7) for theline-thickness parameter. A second brushstroke might include differentvalues for one or more of these parameters, a subset of theseparameters, or both. In this way, a user can quickly select and switchbetween multiple brushstrokes, each of which has a unique style whenapplied to a design element.

The rendering module 125 can be configured to produce a rendered imageof a virtual building surface, a plurality of virtual surface materialunits over the building surface, and the three-dimensional design.

FIG. 3 illustrates a partitioning module 130 configured to partition athree-dimensional design into a plurality of three-dimensional segmentsbased on both a three-dimensional design and dimensions of one or moresurface material units, in accordance with one embodiment. As shown inFIG. 3, the partitioning module 130 can include a design deconstructionmodule 132 and a seam setting module 134.

The design deconstruction module 132 can be configured to divide eachline in the first and second series of lines into a set of points. Forexample, in one embodiment, the design deconstruction module 132 cancreate a first index of the lines in the first series of lines and asecond index of the lines in the second series of lines. In anotherembodiment, the design deconstruction module 132 can divide each of thelines in the indexes into a series of points and create an first indexof the points on each line in the first index of lines and a secondindex of points on each line in the second index of lines.

The seam setting module 134 can be configured to set appropriate linesin the first series of lines as seam lines. In one embodiment, seamlines can represent where surface material units should be cut to formthree-dimensional segments. In another embodiment, the seam settingmodule 134 can identify groove lines that should be set as seam lines soas to obscure the seams when the plurality of three-dimensional segmentsare assembled over a building surface area.

In one embodiment, the seam setting module 124 can create a first indexof seam lines representing seam lines in the first series of lines. Forexample, if the surface height is less than or equal to the materialheight, the seam setting module 134 can iteratively set lines in thefirst series of lines as seam lines in a first set of seam lines if ahorizontal distance between any point on a next line in the first seriesof lines and any point on a latest seam line in the first set of seamlines exceeds a first dimensional threshold. In another embodiment, thefirst dimensional threshold can be determined based on the materiallength. For example, in a further embodiment, the first dimensionalthreshold can be the material length minus a tolerance value.

Alternatively, if the surface length is less than or equal to thematerial length, the seam setting module 134 can iteratively set linesin the first series of lines as seam lines in a first set of seam linesif a vertical distance between any point on a next line in the firstseries of lines and any point on a latest seam line in the first set ofseam lines exceeds a first dimensional threshold. In another embodiment,the first dimensional threshold can be determined based on the materialheight. For example, in a further embodiment, the first dimensionalthreshold can be the material height minus a tolerance value.

When three-dimensional design includes a second series of lines, theseam setting module 134 can be configured to set appropriate lines inthe first and second series of lines as seam lines. In one embodiment,the seam setting module 124 can create a first index of seam linesrepresenting seam lines in the first series of lines. In anotherembodiment, the seam setting module 124 can create a second index ofseam lines representing seam lines in the second series of lines.

In one embodiment, the seam setting module 134 iteratively sets lines inthe first series of lines as seam lines in a first set of seam lines ifa horizontal distance between any point on a next line in the firstseries of lines and any point on a latest seam line in the first set ofseam lines exceeds a first dimensional threshold. In another embodiment,the first dimensional threshold can be determined based on the materiallength. For example, in a further embodiment, the first dimensionalthreshold can be the material length minus a tolerance value.

In one embodiment, the seam setting module 134 can loop through thefirst index of lines and the first index of points to identify one ormore points on each of the first series of lines having a minimumdistance in the horizontal direction (X_(min) point). In anotherembodiment, the seam setting module 134 can loop through the first indexof lines and the first index of points to identify one or more points oneach of the first series of lines having a maximum distance in thehorizontal direction (X_(max) point).

In one embodiment, the seam setting module 134 can set the first line inthe first index of lines as the first seam line. The seam setting module134 can then move to a next line in the first index of lines todetermine whether the horizontal distance between the next line'sX_(max) point to the latest seam line's X_(min) point exceeds the firstdimensional threshold. If the next line's X_(max) point to the latestseam line's X_(min) point does not exceed the first dimensionalthreshold, then the seam setting module 134 can move to the next line inthe first index of lines. This continues until it is determined that fora particular line, the line's X_(max) point to the latest seam line'sX_(min) point exceeds the first dimensional threshold. When this occurs,the seam setting module 134 can set the previous line in the first indexof lines as a seam line. The new seam line can be added to the firstindex of seam lines, and the seam setting module 134 can step throughthe next lines in the first index of lines to determine whether thehorizontal distance between the next line's X_(max) point to the latestseam line's X_(min) point exceeds the first dimensional threshold inorder to identify a next seam line. The seam setting module 134 cancontinue to step through each line in the first index of lines in thismanner until all of the seam lines are set in the first series of lines,i.e., until all lines in the first index of lines are analyzed.

In one embodiment, the seam setting module 134 iteratively sets lines inthe second series of lines as seam lines in a second set of seam linesif a vertical distance between any point on a next line in the secondseries of lines and any point on a latest seam line in the second set ofseam lines exceeds a second dimensional threshold. In anotherembodiment, the second dimensional threshold can be determined based onthe material height. For example, in a further embodiment, the seconddimensional threshold can be the material height minus a tolerancevalue.

In one embodiment, the seam setting module 134 can loop through thesecond index of lines and the second index of points to identify one ormore points on each of the second series of lines having a minimumdistance in the vertical direction (Y_(min) point). In anotherembodiment, the seam setting module 134 can loop through the secondindex of lines and the second index of points to identify one or morepoints on each of the second series of lines having a maximum distancein the vertical direction (Y_(max) point).

In one embodiment, the seam setting module 134 can set the first line inthe second index of lines as a seam line. The seam setting module 134can then move to a next line in the second index of lines to determinewhether the vertical distance between the next line's Y_(max) point tothe latest seam line's Y_(min) point exceeds the second dimensionalthreshold. If the next line's Y_(max) point to the latest seam line'sY_(min) point does not exceed the second dimensional threshold, then theseam setting module 134 can move to the next line in the second index oflines. This continues until it is determined that for a particular linein the second index of lines, the distance from the line's Y_(max) pointto the latest seam line's Y_(min) point exceeds the second dimensionalthreshold. When this occurs, the seam setting module 134 can set theprevious line in the second index of lines as a seam line. The new seamline can be added to the second index of seam lines, and the seamsetting module 134 can step through the next lines in the second indexof lines to determine whether the vertical distance between the nextline's Y_(max) point to the latest seam line's Y_(min) point exceeds thesecond dimensional threshold in order to identify a next seam line. Theseam setting module 134 can continue to step through each line in thesecond index of lines in this manner until all of the seam lines are setin the second series of lines, i.e., until all lines in the second indexof lines are analyzed. These concepts will be described in greaterdetail below with reference to various example scenarios depicted inFIGS. 5A-D, 6A-D, and 7A-C.

In certain embodiments, drawn geometry (e.g., drawn curves/lines) can beincluded in the first or second index of lines such that drawn geometrylines can also be analyzed as potential seam lines.

FIG. 4 illustrates an instruction generating module 140 configured togenerate instructions for cutting a plurality of surface material unitsinto a plurality of three-dimensional segments and for assembling theplurality of three-dimensional segments on a building surface area tocreate a three-dimensional design, in accordance with one embodiment. Asshown in FIG. 4, the instruction generating module 140 can include acutting instructions module 142 and an assembly instructions module 144.

The cutting instructions module 142 can be configured to produce a setof computer-readable instructions that can be interpreted to extract thecommands needed to operate a particular cutting machine for productionof a plurality of three-dimensional segments. For example, theinstructions can comprise Computer Numeric Control (CNC) instructions,such as G-code. As will be discussed in more detail below, the cuttinginstructions can be transmitted to a local CNC machine or to one or moreCNC machines around the world.

In one embodiment, the cutting instructions module 142 can assign anumber to each of the plurality of three-dimensional segments. In oneembodiment, the cutting instruction module 142 can include with thecomputer readable instructions, instructions to cut the number assignedto each of the plurality of three-dimensional segments onto the back ofthe corresponding three-dimensional segment.

The assembly instructions module 144 can be configured to generateinstructions for assembling the plurality of three-dimensional segmentsover a building surface to create a three-dimensional design. Forexample, in one embodiment, the assembly instructions module 144 cangenerate a drawing of the building surface area, with the plurality ofnumbered, three-dimensional segments arranged over the building surfacearea to create the three-dimensional design.

FIG. 5A provides an example scenario 500 associated with receivingdimensions and design parameters for a three-dimensional design 504 andpartitioning the three-dimensional design into a plurality ofthree-dimensional segments 506.0-506.7, according to one embodiment. Theexample scenario 500 illustrates an interface 502. As shown in theexample of FIG. 5A, the interface 502 can provide a display of thethree-dimensional design 504 over a plurality of three-dimensionalsegments 506.0-506.7 arranged over a virtual building surface 508.

In this example scenario 500, the virtual building surface 508 has asurface length of 155 inches and a surface height of 90 inches. Theplurality of three-dimensional segments 506.0-506.7 represent aplurality of surface material units, each with a starting materiallength of 120 inches and a starting material height of 30 inches, thathave been cut and arranged over virtual building surface 508.

The three-dimensional design comprises a first series of lines 510extending generally in a first direction A (in this case, vertically)and a second series of lines 512 extending generally in a seconddirection B (in this case, horizontally), where the first direction isdifferent from the second direction. In this example, the density of thefirst series of lines is 4 inches per line and the density of the secondseries of lines is 2 inches per line.

In this example, the three-dimensional design further includes fivearches 514 as additional drawn design elements or geometry. Theattraction shape, which defines the radius of attraction between thefirst and second series of lines and the drawn geometry 514, is set inthis example to 1 inch. The attraction intensity for the first series oflines, which defines the intensity of the attraction between points onthe first series of lines and the drawn geometry, is set to 4; and theattraction intensity for the second series of lines, which defines theintensity of the attraction between points on the second series of linesand the drawn geometry, is set to 2.

In the example scenario 500, a left-most vertical line 510 a isidentified as a first seam line in a first set of seam lines. Theconstruction module 110 automatically iterates through each verticalline 510, and analyzes whether the distance between a maximum X value oneach vertical line 510 to a minimum X value on the first seam line 510 aexceeds a horizontal threshold (e.g., 120 inches, the length of thesurface material unit). In the example scenario 500, it has beendetermined that the horizontal distance between a maximum X value on avertical line 510 c and a minimum X value on the first seam line 510 aexceeds the horizontal threshold. As such, the immediately precedingvertical line 510 b is selected as a second seam line in the first setof seam lines. Repeating these steps, it is determined that there is novertical line for which the distance to the second seam line 510 bexceeds the horizontal threshold. As such, a rightmost vertical edge 510d is selected as a final seam line in the first set of seam lines.

Seam lines in the perpendicular direction can be selected in a similarmanner. In the example scenario 500, a lowermost horizontal line 512 ais selected as a first seam line in a second set of seam lines. Theconstruction module 110 automatically iterates through each horizontalline 512 and determines whether the vertical distance between a maximumY value on each horizontal line 512 and a minimum Y value on the firstseam line 512 in the second set of seam lines exceeds a verticalthreshold (e.g., 30 inches, the height of the surface material unit). Inthe example scenario 500, it is determined that the vertical distancebetween a maximum Y value on a horizontal line 512 c and a minimum Yvalue on the first seam line 512 a in the second set of seam linesexceeds the vertical threshold. As such, the immediately precedinghorizontal line 512 b is selected as a second seam line in the secondset of seam lines. These steps are then repeated from the second seamline 512 b in the second set of seam lines. It is determined that thevertical distance between a maximum Y value for a horizontal line 512 eand a minimum Y value for the second seam line 512 b in the second setof seam lines exceeds the vertical threshold. As such, the immediatelypreceding horizontal line 512 d is selected as a third seam line in thesecond set of seam lines. These steps are repeated once again from thethird seam line 512 d in the second set of seam lines. Each horizontalline 512 from the third seam line 512 d is analyzed to find the firsthorizontal line 512 for which the vertical distance between a maximum Yvalue on that horizontal line and a minimum Y value on the third seamline 512 d in the second set of seam lines exceeds the verticalthreshold. It is determined that that is true for horizontal line 512 g.As such, the immediately preceding horizontal line 512 f is selected asa fourth seam line in the second set of seam lines. Repeating thesesteps, it is determined that there is no horizontal line 512 thatexceeds the vertical threshold from the fourth seam line 512 f in thesecond set of seam lines. As such, an uppermost horizontal line 512 g isselected as a final seam line in the second set of seam lines.

FIG. 5B provides an example scenario 500 associated with partitioningthe three-dimensional design 504 shown in FIG. 5A into a plurality ofthree-dimensional segments 506.0-506.7 based on both thethree-dimensional design 504 and the dimensions of the surface materialunits 516 and generating a set of milling instructions for cutting aplurality of surface material units 516 into the plurality ofthree-dimensional segments 506.0-506.7, according to one embodiment. Theinterface 502 reflects how the plurality of surface material units 516should be cut to manufacture the plurality of three-dimensional segments506.0-506.7.

In this example, the cutting instructions would be sent to a CNC millingmachine, which would cut eight surface material units, each having amaterial length of 120 inches and a material height of 30 inches, asshown. In one embodiment, the eight units would be numbered and arrangedon the building surface as shown in FIG. 5A.

FIG. 5C provides an example scenario 550 associated with receivingmodified design parameters, according to one embodiment. The examplescenario 550 illustrates an interface 552, similar to interface 502 ofFIG. 5A. In the example scenario 550, the three-dimensional design 504is not changed, but a horizontal offset has been changed from 0 inchesto 10 inches. This change to the horizontal offset results in shiftingthe horizontal position of the plurality of three-dimensional segments518.0-518.11 over the virtual building surface 508. In this example, theoffset results in increasing the number of three-dimensional segmentsneeded to cover the virtual building surface 508, as demonstrated by thevertical seam lines 570 and horizontal seam lines 572. The horizontaloffset can be implemented in a variety of ways. For example, a leftmostfirst seam line can be offset by the horizontal offset, or thehorizontal threshold for only the first iteration can be modified by thehorizontal offset. It should be appreciated that a vertical offset canalso be similarly implemented.

FIG. 5D provides an example scenario 550 associated with partitioningthe three-dimensional design 504 shown in FIG. 5C into a modifiedplurality of three-dimensional segments 518.0-518.11 and generating aset of milling instructions for cutting a plurality of surface materialunits 516 into the plurality of three-dimensional segments 518.0-518.11,according to one embodiment. The interface 552 reflects how theplurality of surface material units 516 should be cut to manufacture theplurality of three-dimensional segments 518.0-518.11.

In this example, the cutting instructions would be sent to a CNC millingmachine, which would cut six surface material units 516, each having amaterial length of 120 inches and a material height of 30 inches, asshown. In one embodiment, the six units would be numbered and arrangedon the building surface as shown in FIG. 5C.

FIG. 6A provides an example scenario 600 associated with receivingdimensions and design parameters for a three-dimensional design 604 andpartitioning the three-dimensional design into a plurality ofthree-dimensional segments 606.0-606.2, according to one embodiment. Theexample scenario 600 illustrates an interface 602. As shown in theexample of FIG. 6A, the interface 602 can provide a display of thethree-dimensional design 604 over a plurality of three-dimensionalsegments 606.0-606.2 arranged over a virtual building surface 608.

In this example scenario 600, the virtual building surface 608 has asurface length of 96 inches and a surface height of 96 inches. Theplurality of three-dimensional segments 606.0-606.2 represent aplurality of surface material units, each with a starting materiallength of 96 inches and a starting material height of 30 inches, thathave been cut and arranged over virtual building surface 608.

The three-dimensional design comprises a first series of lines 610extending generally in a first direction A (in this case, vertically)and a second series of lines 612 extending generally in a seconddirection B (in this case, horizontally), where the first direction isdifferent from the second direction. In this example, the density of thefirst series of lines is 1 inch per line and the density of the secondseries of lines is 0.5 inches per line.

In this example, a sine wave function was applied to the design tomodify the position of points on the first and second series of lines610, 612. More specifically, a sine shape value of 2.5 was applied tothe first and second series of lines to add sinusoidal curved lines tothe design. This results in a three-dimensional design comprising aseries of ripples or concentric circles 614.

In the example scenario 600, a left-most vertical line 610 a isidentified as a first seam line in a first set of seam lines. Theconstruction module 110 automatically iterates through each verticalline 610, and analyzes whether the distance between a maximum X value oneach vertical line 610 to a minimum X value on the first seam line 610 aexceeds a horizontal threshold (e.g., 96 inches, the length of thesurface material unit). In the example scenario 600, there is novertical line for which the distance to the first seam line 510 aexceeds the horizontal threshold. As such, a rightmost vertical edge 610b is selected as a final seam line in the first set of seam lines.

It should be appreciated that, for examples like this one, where thelength of the building surface is less than or equal to the length ofthe surface material, the three-dimensional design need not include aseries of vertical lines. Similarly, where the width of the buildingsurface is less than or equal to the width of the surface material, thethree-dimensional design need not include a series of horizontal lines.

Seam lines in the perpendicular direction can be selected in a similarmanner. In the example scenario 600, a lowermost horizontal line 612 ais selected as a first seam line in a second set of seam lines. Theconstruction module 110 automatically iterates through each horizontalline 612 and determines whether the vertical distance between a maximumY value on each horizontal line 612 and a minimum Y value on the firstseam line 612 in the second set of seam lines exceeds a verticalthreshold (e.g., 30 inches, the height of the surface material unit). Inthe example scenario 600, it is determined that the vertical distancebetween a maximum Y value on a horizontal line 612 c and a minimum Yvalue on the first seam line 612 a in the second set of seam linesexceeds the vertical threshold. As such, the immediately precedinghorizontal line 612 b is selected as a second seam line in the secondset of seam lines. These steps are then repeated from the second seamline 612 b in the second set of seam lines. It is determined that thevertical distance between a maximum Y value for a horizontal line 612 eand a minimum Y value for the second seam line 612 b in the second setof seam lines exceeds the vertical threshold. As such, the immediatelypreceding horizontal line 612 d is selected as a third seam line in thesecond set of seam lines. These steps are repeated once again from thethird seam line 612 d in the second set of seam lines. Repeating thesesteps, it is determined that there is no horizontal line 612 thatexceeds the vertical threshold from the third seam line 612 d in thesecond set of seam lines. As such, an uppermost horizontal line 612 f isselected as a final seam line in the second set of seam lines.

FIG. 6B provides an example scenario 600 associated with partitioningthe three-dimensional design 604 shown in FIG. 6A into a plurality ofthree-dimensional segments 606.0-606.2 based on both thethree-dimensional design 604 and the dimensions of the surface materialunits 616 and generating a set of milling instructions for cutting aplurality of surface material units 616 into the plurality ofthree-dimensional segments 606.0-606.2, according to one embodiment. Theinterface 602 reflects how the plurality of surface material units 616should be cut to manufacture the plurality of three-dimensional segments606.0-606.2.

In this example, the cutting instructions would be sent to a CNC millingmachine, which would cut three surface material units, each having amaterial length of 96 inches and a material height of 30 inches, asshown. In one embodiment, the three units would be numbered and arrangedon the building surface as shown in FIG. 6A.

FIG. 6C provides an example scenario 650 associated with receivingmodified design parameters, according to one embodiment. The examplescenario 650 illustrates an interface 652, similar to interface 602 ofFIG. 6A. In the example scenario 650, the three-dimensional design 604is changed to comprise a first series of lines 662 extending generallyin a first direction A (in this case, horizontally). Because the lengthof the building surface is less than or equal to the length of each ofthe surface material units, it is not necessary to include a secondseries of lines extending generally in a second direction, wherein thefirst direction is different from the second direction.

Seam lines can be selected as described above. For example, in theexample scenario 650, a lowermost horizontal line 662 a is selected as afirst seam line in a first set of seam lines. The construction module110 automatically iterates through each horizontal line 662 anddetermines whether the vertical distance between a maximum Y value oneach horizontal line 662 and a minimum Y value on the first seam line662 in the first set of seam lines exceeds a vertical threshold (e.g.,30 inches, the height of the surface material unit). In the examplescenario 650, it is determined that the vertical distance between amaximum Y value on a horizontal line 662 c and a minimum Y value on thefirst seam line 662 a in the first set of seam lines exceeds thevertical threshold. As such, the immediately preceding horizontal line662 b is selected as a second seam line in the first set of seam lines.These steps are then repeated from the second seam line 662 b in thefirst set of seam lines. It is determined that the vertical distancebetween a maximum Y value for a horizontal line 662 e and a minimum Yvalue for the second seam line 662 b in the first set of seam linesexceeds the vertical threshold. As such, the immediately precedinghorizontal line 662 d is selected as a third seam line in the first setof seam lines. These steps are repeated once again from the third seamline 662 d in the first set of seam lines. Repeating these steps, it isdetermined that there is no horizontal line 662 that exceeds thevertical threshold from the third seam line 662 d in the first set ofseam lines. As such, an uppermost horizontal line 662 f is selected as afinal seam line in the first set of seam lines.

FIG. 6D provides an example scenario 650 associated with partitioningthe three-dimensional design 604 shown in FIG. 6C into a modifiedplurality of three-dimensional segments 618.0-618.2 and generating a setof milling instructions for cutting a plurality of surface materialunits 616 into the plurality of three-dimensional segments 618.0-618.2,according to one embodiment. The interface 652 reflects how theplurality of surface material units 616 should be cut to manufacture theplurality of three-dimensional segments 618.0-618.2.

In this example, the cutting instructions would be sent to a CNC millingmachine, which would cut three surface material units 616, each having amaterial length of 96 inches and a material height of 30 inches, asshown. In one embodiment, the three units would be numbered and arrangedon the building surface as shown in FIG. 6C.

FIG. 7A provides an example scenario 700 associated with receivingdimensions and design parameters for a three-dimensional design 704 andpartitioning the three-dimensional design into a plurality ofthree-dimensional segments 706.0-706.2, according to one embodiment. Theexample scenario 700 illustrates an interface 702. As shown in theexample of FIG. 7A, the interface 702 can provide a display of thethree-dimensional design 704 over a plurality of three-dimensionalsegments 706.0-706.2 arranged over a virtual building surface 708.

In this example scenario 700, the virtual building surface 708 has asurface length of 96 inches and a surface height of 96 inches. Theplurality of three-dimensional segments 706.0-706.2 represent aplurality of surface material units, each with a starting materiallength of 96 inches and a starting material height of 30 inches, thathave been cut and arranged over virtual building surface 708.

The three-dimensional design comprises a first series of lines 710extending generally in a first direction A (in this case, vertically)and a second series of lines 712 extending generally in a seconddirection B (in this case, horizontally), where the first direction isdifferent from the second direction. In this example, the density of thefirst series of lines is 1 inch per line and the density of the secondseries of lines is 0.5 inches per line.

With continued reference to FIG. 7A and also to FIG. 7C, in thisexample, the three-dimensional design further includes an image of amoose 714 as additional image element. The attraction intensity for thefirst series of lines, which defines the intensity of the attractionbetween points on the first series of lines and dark (or light) regionsof the image element, is set to 1; and the attraction intensity for thesecond series of lines, which defines the intensity of the attractionbetween points on the second series of lines and dark (or light) regionsof the image element, is set to 1.

In the example scenario 700, a left-most vertical line 710 a isidentified as a first seam line in a first set of seam lines. Theconstruction module 110 automatically iterates through each verticalline 710, and analyzes whether the distance between a maximum X value oneach vertical line 710 to a minimum X value on the first seam line 710 aexceeds a horizontal threshold (e.g., 96 inches, the length of thesurface material unit). In the example scenario 700, there is novertical line for which the distance to the first seam line 710 aexceeds the horizontal threshold. As such, a rightmost vertical edge 710b is selected as a final seam line in the first set of seam lines.

Seam lines in the perpendicular direction can be selected in a similarmanner. In the example scenario 700, a lowermost horizontal line 712 ais selected as a first seam line in a second set of seam lines. Theconstruction module 110 automatically iterates through each horizontalline 712 and determines whether the vertical distance between a maximumY value on each horizontal line 712 and a minimum Y value on the firstseam line 712 in the second set of seam lines exceeds a verticalthreshold (e.g., 30 inches, the height of the surface material unit). Inthe example scenario 700, it is determined that the vertical distancebetween a maximum Y value on a horizontal line 712 c and a minimum Yvalue on the first seam line 712 a in the second set of seam linesexceeds the vertical threshold. As such, the immediately precedinghorizontal line 712 b is selected as a second seam line in the secondset of seam lines. These steps are then repeated from the second seamline 712 b in the second set of seam lines. It is determined that thevertical distance between a maximum Y value for a horizontal line 712 eand a minimum Y value for the second seam line 712 b in the second setof seam lines exceeds the vertical threshold. As such, the immediatelypreceding horizontal line 712 d is selected as a third seam line in thesecond set of seam lines. These steps are repeated once again from thethird seam line 712 d in the second set of seam lines. Each horizontalline 712 from the third seam line 712 d is analyzed to find the firsthorizontal line 712 for which the vertical distance between a maximum Yvalue on that horizontal line and a minimum Y value on the third seamline 712 d in the second set of seam lines exceeds the verticalthreshold. It is determined that there is no horizontal line 712 thatexceeds the vertical threshold from the third seam line 712 d in thesecond set of seam lines. As such, an uppermost horizontal line 712 f isselected as a final seam line in the second set of seam lines.

FIG. 7B provides an example scenario 700 associated with partitioningthe three-dimensional design 704 shown in FIG. 7A into a plurality ofthree-dimensional segments 706.0-706.2 based on both thethree-dimensional design 704 and the dimensions of the surface materialunits 716 and generating a set of milling instructions for cutting aplurality of surface material units 716 into the plurality ofthree-dimensional segments 706.0-706.2, according to one embodiment. Theinterface 702 reflects how the plurality of surface material units 716should be cut to manufacture the plurality of three-dimensional segments706.0-706.2.

In this example, the cutting instructions would be sent to a CNC millingmachine, which would cut three surface material units, each having amaterial length of 96 inches and a material height of 30 inches, asshown. In one embodiment, the three units would be numbered and arrangedon the building surface as shown in FIG. 7A.

FIG. 11A provides an example scenario 1100 associated with receivingdesign parameters for a three-dimensional design according to oneembodiment. The example scenario 1100 illustrates an interface 1102. Inthis example, the design parameters comprise a drawn design 1114 thatincludes several pedal-like segments. As shown in the example of FIG.7A, the interface 1102 can provide a display of the drawn design 1114over a virtual building surface 1108.

With reference to FIG. 11B, the received design parameters can furthercomprise a selected design-style, or “brushstroke.” As discussed above,the system can include a plurality of brushstrokes, and each brushstrokecan comprise predefined values for various shape parameters. In thisscenario 1100, the selected brushstroke includes shape parameters for afirst series of lines 1110 extending generally in a first direction B(in this case, horizontally). More specifically, the selectedbrushstroke specifies that the three-dimensional design 1104 includeshorizontal lines 1110 (but not vertical lines), the line density is 1.60inches, the point resolution is 0.50, the radius-of-attraction is 0.20,the attraction intensity is 2.00, the minimum depth is 0.10, the maximumdepth is 0.35, the frequency of a periodic function applied to the linesis 3.00, and the line thickness is 2.00. These predefined shapeparameters cause a series of horizontal lines 1110 to interact with thedrawn design 1114 to create the frenetic and wild three-dimensionaldesign 1104 shown in FIG. 11B. If this brushstroke were applied to animage element or to a different drawn design, the resultingthree-dimensional design would be unique, but it would have the sameturbulent style.

FIG. 11C illustrates how the style of the three-dimensional design ischanged when a different brushstroke is applied to the same designelement 1114 (in this case, a drawn element). In this example, the samedesign element 1114 is used, but a different brushstroke is selected.This alternative brushstroke specifies that the three-dimensional design1104 includes horizontal lines 1120 (but not vertical lines), the linedensity is 0.40 inches, the point resolution is 0.10, theradius-of-attraction is 0.50, the attraction intensity is 1.00, theminimum depth is 0.20, the maximum depth is 0.35, the frequency of aperiodic function applied to the lines is 0.25, and the line thicknessis 1.00. These predefined shape parameters cause a series of horizontallines 1120 to interact with the drawn design 1114 to create the neat andordered three-dimensional design 1104 shown in FIG. 11C. If thisbrushstroke were applied to an image element or to a different drawndesign, the resulting three-dimensional design would be unique, but itwould have the tidy style.

The user can continue to alternate between the predefined brushstrokesuntil satisfied with the resulting three-dimensional design 1104. Insome embodiments, the user can then hide the design element 1114 so thatonly the three-dimensional design 1104 is shown in the final product.Once the design is finalized, the system will partition thethree-dimensional design into a plurality of three-dimensional segmentsand generate a set of milling instructions for cutting a plurality ofsurface material units into the plurality of three-dimensional segments,as described above.

FIG. 8 illustrates an example method 800 associated with manufacturing athree-dimensional building surface, according to one embodiment. Itshould be appreciated that, unless otherwise stated, the method caninclude additional, fewer, or alternative steps performed in similar,parallel, or alternative orders.

At block 802, the example method 800 can receive dimensions of abuilding surface, including a surface length and a surface height. Atblock 804, the example method 800 can receive dimensions of a surfacematerial unit, including a material length and a material height. Atblock 806, the example method 800 can receive design parameters, whichdefine a three-dimensional design over the building surface. At block808, the example method 800 can partition the three-dimensional designinto a plurality of three-dimensional segments based on both thethree-dimensional design and the dimensions of the surface material. Atblock 810, the example method 800 can generate a set of millinginstructions for cutting a plurality of surface material units into theplurality of three-dimensional segments.

Construction System—Example Implementation

FIG. 9 illustrates a network diagram of an example system 900 that canbe used in various scenarios, in accordance with one embodiment. Thesystem 900 can include one or more user devices 910, one or more CNCsystems 920, and a network 930. For purposes of illustration, theembodiment of the system 900, shown by FIG. 9, includes a single userdevice 910 and a single CNC system 920. However, in other embodiments,the system 900 can include more user devices 910, CNC systems 920, orboth.

The user device 910 comprises one or more computing devices (or systems)that can receive input from a user and transmit and receive data via thenetwork 930. In one embodiment, the user device 910 is a conventionalcomputer system executing, for example, a Microsoft Windows compatibleoperating system (OS), Apple OS X, or a Linux distribution. In anotherembodiment, the user device 910 can be a computing device or a devicehaving computer functionality, such as a smart-phone, a tablet, apersonal digital assistant (PDA), a mobile telephone, a laptop computer,a wearable device (e.g., a pair of glasses, a watch, a bracelet, etc.),a camera, an appliance, etc. The user device 910 is configured tocommunicate via the network 930.

In one embodiment, the user device 910 can include a construction module914. In one embodiment, the construction module 914 can be implementedas the construction module 110 of FIG. 1. As discussed previously, itshould be appreciated that there can be many variations or otherpossibilities. For example, in some instances, the construction module914 (or at least a portion it, for example, the cutting module 150) canbe included or implemented in the CNC system 920.

The user device 910 can be configured to communicate with the CNC system920 via the network 930, which can comprise any combination of localarea or wide area networks, using wired or wireless communicationsystems.

In one embodiment, the network 930 uses standard communicationstechnologies and protocols. Thus, the network 930 can include linksusing technologies such as Ethernet, 802.11, worldwide interoperabilityfor microwave access (WiMAX), 3G, 4G, CDMA, GSM, LTE, digital subscriberline (DSL), etc. Similarly, the networking protocols used on the network930 can include multiprotocol label switching (MPLS), transmissioncontrol protocol/Internet protocol (TCP/IP), User Datagram Protocol(UDP), hypertext transport protocol (HTTP), simple mail transferprotocol (SMTP), file transfer protocol (FTP), and the like. The dataexchanged over the network 930 can be represented using technologies orformats including hypertext markup language (HTML) and extensible markuplanguage (XML). In addition, all or some links can be encrypted usingconventional encryption technologies such as secure sockets layer (SSL),transport layer security (TLS), and Internet Protocol security (IPsec).

In one embodiment, the CNC system 920 can include one or more CNCcontrollers 922 that process instructions to control the CNC system 920.In another embodiment, the instructions can be communicated from theuser device 910 to the CNC system 920 using the network 930.

Hardware Implementation

The described methods can be implemented by a wide variety of machineand computer system architectures and in a wide variety of network andcomputing environments. FIG. 10 illustrates an example of a computersystem 1000 that can be used to implement one or more of the describedembodiments. The computer system 1000 includes sets of instructions forcausing the computer system 1000 to perform the described processes. Thecomputer system 1000 can be connected (e.g., networked) to othermachines. In a networked deployment, the computer system 1000 canoperate in the capacity of a server machine or a client machine in aclient-server network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. In one embodiment,the computer system 1000 can be the user device 910, the CAD system 920,or a combination or component of these systems.

The computer system 1000 includes a processor 1002, a cache 1004, andone or more executable modules and drivers, stored on acomputer-readable medium, directed to the described processes.Additionally, the computer system 1000 includes a high performanceinput/output (I/O) bus 1006 and a standard I/O bus 1008. A host bridge1010 couples processor 1002 to high performance I/O bus 1006, whereasI/O bus bridge 1012 couples the two buses 1006 and 1008 to each other. Asystem memory 1014 and one or more network interfaces 1016 couple tohigh performance I/O bus 1006. The computer system 1000 can furtherinclude video memory and a display device coupled to the video memory(not shown). Mass storage 1018 and I/O ports 1020 couple to the standardI/O bus 1008. The computer system 1000 can optionally include a keyboardand pointing device, a display device, or other input/output devices(not shown) coupled to the standard I/O bus 1008. Collectively, theseelements are intended to represent a broad category of computer hardwaresystems, including but not limited to computer systems based on thex86-compatible processors manufactured by Intel Corporation of SantaClara, Calif., and the x86-compatible processors manufactured byAdvanced Micro Devices (AMD), Inc., of Sunnyvale, Calif., as well as anyother suitable processor.

An operating system manages and controls the operation of the computersystem 1000, including the input and output of data to and from softwareapplications (not shown). The operating system provides an interfacebetween the software applications being executed on the system and thehardware components of the system. Any suitable operating system can beused, such as the LINUX Operating System, the Apple Macintosh OperatingSystem, available from Apple Computer Inc. of Cupertino, Calif., UNIXoperating systems, Microsoft® Windows® operating systems, BSD operatingsystems, and the like. Other implementations are possible.

The elements of the computer system 1000 are described in greater detailbelow. In particular, the network interface 1016 provides communicationbetween the computer system 1000 and any of a wide range of networks,such as an Ethernet (e.g., IEEE 802.3) network, a backplane, etc. Themass storage 1018 provides permanent storage for the data andprogramming instructions to perform the above-described processes andfeatures implemented by the respective computing systems identifiedabove, whereas the system memory 1014 (e.g., DRAM) provides temporarystorage for the data and programming instructions when executed by theprocessor 1002. The I/O ports 1020 can be one or more serial or parallelcommunication ports, which provide communication between additionalperipheral devices that can be coupled to the computer system 1000.

The computer system 1000 can include a variety of system architectures,and various components of the computer system 1000 can be rearranged.For example, the cache 1004 can be on-chip with processor 1002.Alternatively, the cache 1004 and the processor 1002 can be packedtogether as a “processor module,” with processor 1002 being referred toas the “processor core.” Furthermore, certain embodiments of theinvention might neither require nor include all of the above components.For example, peripheral devices coupled to the standard I/O bus 1008 cancouple to the high performance I/O bus 1006. In addition, in someembodiments, only a single bus might exist, with the components of thecomputer system 1000 being coupled to the single bus. Moreover, thecomputer system 1000 might include additional components, such asadditional processors, storage devices, or memories.

In general, the described processes can be implemented as part of anoperating system or a specific application, component, program, object,module, or series of instructions referred to as “programs.” Forexample, one or more programs can be used to execute specific processes.The programs typically comprise one or more instructions in variousmemory and storage devices in the computer system 1000 that, when readand executed by one or more processors, cause the computer system 1000to perform operations to execute the described processes. The describedprocesses can be implemented in software, firmware, hardware (e.g., anapplication specific integrated circuit), or any combination of these.

In one implementation, the described processes are implemented as aseries of executable modules run by the computer system 1000,individually or collectively in a distributed computing environment. Theforegoing modules can be realized by hardware, executable modules storedon a computer-readable medium (or machine-readable medium), or acombination of both. For example, the modules can comprise a pluralityor series of instructions to be executed by a processor in a hardwaresystem, such as the processor 1002. Initially, the series ofinstructions can be stored on a storage device, such as the mass storage1018. However, the series of instructions can be stored on any suitablecomputer readable storage medium. Furthermore, the series ofinstructions need not be stored locally, and could be received from aremote storage device, such as a server on a network, via the networkinterface 1016. The instructions are copied from the storage device,such as the mass storage 1018, into the system memory 1014 and thenaccessed and executed by the processor 1002. In various implementations,a module or modules can be executed by a processor or multipleprocessors in one or multiple locations, such as multiple servers in aparallel processing environment.

Examples of computer-readable media include, but are not limited to,recordable type media such as volatile and non-volatile memory devices;solid state memories; floppy and other removable disks; hard diskdrives; magnetic media; optical disks (e.g., Compact Disk Read-OnlyMemory (CD ROMS), Digital Versatile Disks (DVDs)); other similarnon-transitory (or transitory), tangible (or non-tangible) storagemedium; or any type of medium suitable for storing, encoding, orcarrying a series of instructions for execution by the computer system800 to perform any one or more of the described processes.

It should be appreciated from the foregoing description that the presentinvention provides methods, systems, and non-transitory computerreadable media configured to partition a non-repeating, ornate,three-dimensional design into a plurality of segments that can be easilymanufactured and inexpensively assembled to provide a seamless,three-dimensional design over a building surface area.

For purposes of explanation, numerous specific details are outlined toprovide a thorough understanding of the description. It will beapparent, however, to one skilled in the art that embodiments of thedisclosure can be practiced without these specific details. In someinstances, modules, structures, processes, features, and devices areshown in block diagram form to avoid obscuring the description. In otherinstances, functional block diagrams and flow diagrams are shown torepresent data and logic flows. The components of block diagrams andflow diagrams (e.g., modules, blocks, structures, devices, features,etc.) can be variously combined, separated, removed, reordered, andreplaced in a manner other than as expressly described and depicted.

Reference in this specification to “one embodiment,” “an embodiment,”“other embodiments,” “one series of embodiments,” “some embodiments,”“various embodiments,” or the like means that a particular feature,design, structure, or characteristic described in connection with theembodiment is included in at least one embodiment of the disclosure. Theappearances of, for example, the phrase “in one embodiment” or “in anembodiment” in various places in the specification are not necessarilyall referring to the same embodiment, nor are separate or alternativeembodiments mutually exclusive of other embodiments. Moreover, whetherthere is express reference to an “embodiment” or the like, variousfeatures are described, which can be variously combined and included insome embodiments, but also variously omitted in other embodiments.Similarly, various features are described that might be preferences orrequirements for some embodiments, but not other embodiments.

Specific methods, devices, and materials are described, although anymethods and materials similar or equivalent to those described can beused in the practice or testing of the present embodiment. Each featureor concept is independent, but can be combined with any other feature orconcept disclosed in this application.

Unless defined otherwise, all technical and scientific terms used inthis application have the same meanings as commonly understood by one ofordinary skill in the art to which this embodiment belongs. The terms“a,” “an,” and “at least one” encompass one or more of the specifiedelement. That is, if two of a particular element are present, one ofthese elements is also present and thus “an” element is present. Theterms “a plurality of” and “plural” mean two or more of the specifiedelement. The term “or” used between the last two of a list of elementsmeans any one or more of the listed elements. For example, the phrase“A, B, or C” means “A, B, and/or C,” which means “A,” “B,” “C,” “A andB,” “A and C,” “B and C,” or “A, B, and C.”

Without further elaboration, it is believed that one skilled in the art,using the proceeding description, can make and use the present inventionto the fullest extent. The invention has been described in detail withreference only to the presently preferred embodiments. Persons skilledin the art will appreciate that various modifications can be madewithout departing from the invention. Accordingly, the invention isdefined only by the following claims.

1. A computer-implemented method comprising: receiving, by a computingsystem, dimensions of a building surface, including a surface length anda surface height; receiving, by the computing system, dimensions of asurface material unit, including a material length and a materialheight; receiving, by the computing system, design parameters defining athree-dimensional design over the building surface; partitioning, by thecomputing system, the three-dimensional design into a plurality ofthree-dimensional segments based on both the three-dimensional designand the dimensions of the surface material unit; and generating, by thecomputing system, a set of milling instructions for cutting a pluralityof surface material units into the plurality of three-dimensionalsegments; wherein the design parameters comprise a design element andone of a plurality of design styles; wherein the design elementcomprises an image element, a drawn element, or both; and wherein eachof the plurality of design styles comprises a predefined value for eachof a plurality of shape parameters.
 2. (canceled)
 3. (canceled)
 4. Thecomputer-implemented method of claim claim 1, wherein thethree-dimensional design comprises a first series of lines extendinggenerally in a first direction, and wherein the partitioning thethree-dimensional design comprises dividing each line in the firstseries of lines into a first set of points.
 5. The computer-implementedmethod of claim claim 4, wherein the plurality of shape parameterscomprises at least two of: one first line-density parameter, one firstpoint-resolution parameter, one first radius-of-attraction parameter,one first attraction-intensity parameter, one first minimum-depthparameter, one first maximum-depth parameter, one first functionparameter, or one first line-thickness parameter; wherein the firstline-density parameter defines a distance between lines in the firstseries of lines, the first point-resolution parameter defines a quantityof points in the first set of points, the first radius-of-attractionparameter defines a radius of attraction between the first set of pointson the first series of lines and the design element, the firstattraction-intensity parameter defines a degree of attraction betweenthe first set of points on the first series of lines and the designelement, the first minimum-depth parameter defines a minimum depth forthe first series of lines, the first maximum-depth parameter defines amaximum depth for the first series of lines, the first functionparameter comprises a first function that adds periodicity to the firstseries of lines, and the first line-thickness parameter defines a linethickness for the lines in the first series of lines.
 6. Thecomputer-implemented method of claim claim 5, wherein the surface heightis less than or equal to the material height, and wherein thepartitioning the three-dimensional design further comprises: iterativelysetting lines in the first series of lines as seam lines if a horizontaldistance between any point on a next line in the first series of linesand any point on a latest seam line exceeds a first dimensionalthreshold, wherein the first dimensional threshold is determined basedon the material length.
 7. The computer-implemented method of claimclaim 5, wherein the surface length is less than or equal to thematerial length, and wherein the partitioning the three-dimensionaldesign further comprises: iteratively setting lines in the first seriesof lines as seam lines if a vertical distance between any point on anext line in the first series of lines and any point on a latest seamline exceeds a first dimensional threshold, wherein the firstdimensional threshold is determined based on the material height.
 8. Thecomputer-implemented method of claim claim 5, wherein thethree-dimensional design further comprises a second series of linesextending generally in a second direction, wherein the first directionis different from the second direction; and wherein the partitioning thethree-dimensional design further comprises dividing each line in thesecond series of lines into a second set of points.
 9. Thecomputer-implemented method of claim claim 8, wherein the plurality ofshape parameters further comprises at least two of: one secondline-density parameter, one second point-resolution parameter, onesecond radius-of-attraction parameter, one second attraction-intensityparameter, one second minimum-depth parameter, one second maximum-depthparameter, one second function parameter, or one second line-thicknessparameter; wherein the second line-density parameter defines a distancebetween lines in the second series of lines, the second point-resolutionparameter defines a quantity of points in the second set of points, thesecond radius-of-attraction parameter defines a radius of attractionbetween the second set of points on the second series of lines and thedesign element, the second attraction-intensity parameter defines adegree of attraction between the second set of points on the secondseries of lines and the design element, the second minimum-depthparameter defines a minimum depth for the second series of lines, thesecond maximum-depth parameter defines a maximum depth for the secondseries of lines, the second function parameter comprises a secondfunction that adds periodicity to the second series of lines, and thesecond line-thickness parameter defines a line thickness for the linesin the second series of lines.
 10. (canceled)
 11. (canceled) 12.(canceled)
 13. The computer-implemented method of claim claim 8, furthercomprising: receiving, by the computing system, a second of theplurality of design styles for a modified three-dimensional design;adjusting, by the computing system, one or a combination of the firstseries of lines and the second series of lines based on the second ofthe plurality of design styles; and repartitioning, by the computingsystem, the modified three-dimensional design into a modified pluralityof segments based on the modified three-dimensional design and thedimensions of the surface material unit.
 14. (canceled)
 15. (canceled)16. A system comprising: at least one processor; and a memory storinginstructions that, when executed by the at least one processor, causethe system to perform a method comprising: receiving dimensions of abuilding surface, including a surface length and a surface height;receiving dimensions of a surface material unit, including a materiallength and a material height; receiving design parameters defining athree-dimensional design over the building surface; partitioning thethree-dimensional design into a plurality of three-dimensional segmentsbased on both the three-dimensional design and the dimensions of thesurface material unit; and generating a set of milling instructions forcutting a plurality of surface material units into the plurality ofthree-dimensional segments; wherein the design parameters comprise adesign element and one of a plurality of design styles; wherein thedesign element comprises an image element, a drawn element, or both; andwherein each of the plurality of design styles comprises a predefinedvalue for each of a plurality of shape parameters.
 17. The system ofclaim claim 16, wherein the three-dimensional design comprises a firstseries of lines extending generally in a first direction, and whereinthe partitioning the three-dimensional design comprises dividing eachline in the first series of lines into a first set of points.
 18. Thesystem of claim claim 17, wherein the plurality of shape parameterscomprises at least two of: one first line-density parameter, one firstpoint-resolution parameter, one first radius-of-attraction parameter,one first attraction-intensity parameter, one first minimum-depthparameter, one first maximum-depth parameter, one first functionparameter, or one first line-thickness parameter; wherein the firstline-density parameter defines a distance between lines in the firstseries of lines, the first point-resolution parameter defines a quantityof points in the first set of points, the first radius-of-attractionparameter defines a radius of attraction between the first set of pointson the first series of lines and the design element, the firstattraction-intensity parameter defines a degree of attraction betweenthe first set of points on the first series of lines and the designelement, the first minimum-depth parameter defines a minimum depth forthe first series of lines, the first maximum-depth parameter defines amaximum depth for the first series of lines, the first functionparameter comprises a first function that adds periodicity to the firstseries of lines, and the first line-thickness parameter defines a linethickness for the lines in the first series of lines.
 19. The system ofclaim claim 18, wherein the surface height is less than or equal to thematerial height, wherein the partitioning the three-dimensional designfurther comprises: iteratively setting lines in the first series oflines as seam lines if a horizontal distance between any point on a nextline in the first series of lines and any point on a latest seam lineexceeds a first dimensional threshold, wherein the first dimensionalthreshold is determined based on the material length.
 20. (canceled) 21.The system of claim claim 18, wherein the three-dimensional designfurther comprises a second series of lines extending generally in asecond direction; wherein the first direction is different from thesecond direction; and wherein the partitioning the three-dimensionaldesign further comprises dividing each line in the second series oflines into a second set of points.
 22. The system of claim claim 21,wherein the plurality of shape parameters further comprises at least twoof: one second line-density parameter, one second point-resolutionparameter, one second radius-of-attraction parameter, one secondattraction-intensity parameter, one second minimum-depth parameter, onesecond maximum-depth parameter, one second function parameter, or onesecond line-thickness parameter; wherein the second line-densityparameter defines a distance between lines in the second series oflines, the second point-resolution parameter defines a quantity ofpoints in the second set of points, the second radius-of-attractionparameter defines a radius of attraction between the second set ofpoints on the second series of lines and the design element, the secondattraction-intensity parameter defines a degree of attraction betweenthe second set of points on the second series of lines and the designelement, the second minimum-depth parameter defines a minimum depth forthe second series of lines, the second maximum-depth parameter defines amaximum depth for the second series of lines, the second functionparameter comprises a second function that adds periodicity to thesecond series of lines, and the second line-thickness parameter definesa line thickness for the lines in the second series of lines. 23.(canceled)
 24. (canceled)
 25. (canceled)
 26. A non-transitorycomputer-readable storage medium including instructions that, whenexecuted by at least one processor of a computing system, cause thecomputing system to perform a method comprising: receiving dimensions ofa building surface, including a surface length and a surface height;receiving dimensions of a surface material unit, including a materiallength and a material height; receiving design parameters defining athree-dimensional design over the building surface; partitioning thethree-dimensional design into a plurality of three-dimensional segmentsbased on both the three-dimensional design and the dimensions of thesurface material unit; and generating a set of milling instructions forcutting a plurality of surface material units into the plurality ofthree-dimensional segments; wherein the design parameters comprise adesign element and one of a plurality of design styles; wherein thedesign element comprises an image element, a drawn element, or both; andwherein each of the plurality of design styles comprises a predefinedvalue for each of a plurality of shape parameters.
 27. Thenon-transitory computer-readable storage medium of claim claim 26,wherein the three-dimensional design comprises a first series of linesextending generally in a first direction, and wherein the partitioningthe three-dimensional design comprises dividing each line in the firstseries of lines into a first set of points.
 28. The non-transitorycomputer-readable storage medium of claim claim 27, wherein theplurality of shape parameters comprises at least two of: one firstline-density parameter, one first point-resolution parameter, one firstradius-of-attraction parameter, one first attraction-intensityparameter, one first minimum-depth parameter, one first maximum-depthparameter, one first function parameter, or one first line-thicknessparameter; wherein the first line-density parameter defines a distancebetween lines in the first series of lines, the first point-resolutionparameter defines a quantity of points in the first set of points, thefirst radius-of-attraction parameter defines a radius of attractionbetween the first set of points on the first series of lines and thedesign element, the first attraction-intensity parameter defines adegree of attraction between the first set of points on the first seriesof lines and the design element, the first minimum-depth parameterdefines a minimum depth for the first series of lines, the firstmaximum-depth parameter defines a maximum depth for the first series oflines, the first function parameter comprises a first function that addsperiodicity to the first series of lines, and the first line-thicknessparameter defines a line thickness for the lines in the first series oflines.
 29. The non-transitory computer-readable storage medium of claimclaim 28, wherein the surface height is less than or equal to thematerial height, wherein the partitioning the three-dimensional designfurther comprises: iteratively setting lines in the first series oflines as seam lines if a horizontal distance between any point on a nextline in the first series of lines and any point on a latest seam lineexceeds a first dimensional threshold, wherein the first dimensionalthreshold is determined based on the material length.
 30. (canceled) 31.The non-transitory computer-readable storage medium of claim claim 28,wherein the three-dimensional design further comprises a second seriesof lines extending generally in a second direction; wherein the firstdirection is different from the second direction; and wherein thepartitioning the three-dimensional design further comprises dividingeach line in the second series of lines into a second set of points. 32.The non-transitory computer-readable storage medium of claim claim 31,wherein the plurality of shape parameters further comprises at least twoof: one second line-density parameter, one second point-resolutionparameter, one second radius-of-attraction parameter, one secondattraction-intensity parameter, one second minimum-depth parameter, onesecond maximum-depth parameter, one second function parameter, or onesecond line-thickness parameter; wherein the second line-densityparameter defines a distance between lines in the second series oflines, the second point-resolution parameter defines a quantity ofpoints in the second set of points, the second radius-of-attractionparameter defines a radius of attraction between the second set ofpoints on the second series of lines and the design element, the secondattraction-intensity parameter defines a degree of attraction betweenthe second set of points on the second series of lines and the designelement, the second minimum-depth parameter defines a minimum depth forthe second series of lines, the second maximum-depth parameter defines amaximum depth for the second series of lines, the second functionparameter comprises a second function that adds periodicity to thesecond series of lines, and the second line-thickness parameter definesa line thickness for the lines in the second series of lines. 33.(canceled)
 34. (canceled)
 35. (canceled)